import ChartBase from './chartBase';
import ChartModelUtil from '../chartUtil/ChartModelUtil.js';
// import {pxToPx} from '../../utils/adaptive.js';
class ChartWithAxis extends ChartBase{
	constructor() {
	  super();
	}
	addAxises(params) {
    let xAxisObj = this.getAxis({type:'category',name:'',params});
    xAxisObj.axisLabel.rotate= params.xAxisLabelRotate;
    // if(params.chartType && params.chartType=='line'){
    //   xAxisObj.axisPointer = {
    //       value:'周三',
    //       snap: true,
    //       lineStyle: {
    //           color: '#B3DBFF',
    //           width: 1
    //       },
    //       handle: {
    //           show: true,
    //           color: 'transparent'
    //       }
    //   };
    // }
    let xAxis = [xAxisObj];
    //处理X轴
    let dimensionData;
    //如果有values，维度的数据就是values，否则就用fieldName取
    if (params.data && params.data.dimension && params.data.dimension.length){
      dimensionData = params.data.dimension;
    }
    if(dimensionData && dimensionData.length){
      let temp='';
      for (let value of dimensionData) {
        if(value.indexOf('-')>0){
          temp = value.substr(value.indexOf('-')+1);
          xAxis[0].data.push(temp);
        }else{
          xAxis[0].data.push(value);
        }
      }
    }
    //处理Y轴
    let yAxis = [];
    let yAxisObj = this.getAxis({type:'value',name:'',params});
    yAxisObj.axisLabel.formatter = function(value){
      if(params.yAxisLabelFormatter && params.yAxisLabelFormatter=='%'){
        return value*100 + params.yAxisLabelFormatter;
      }
      return value;
    };
    yAxis.push(yAxisObj);
    
    // let yAxisLength = this.calcAxisLength(chartData);
    // for (let i = 0; i < yAxisLength; i++) {
    //   yAxis.push(JSON.parse(JSON.stringify(yAxisObj)));
    // }
    //柱状类型图、折线图、面积图
    if (ChartModelUtil.isColumnTypeChart(params.chartType) || ChartModelUtil.isLineOrAreaTypeChart(params.chartType)) { 
      this.option.xAxis = xAxis;
      this.option.yAxis = yAxis;
    } else if (ChartModelUtil.isBarTypeChart(params.chartType)) { //横向柱状图
      this.option.xAxis = yAxis;
      this.option.yAxis = xAxis;
      this.option.yAxis[0].splitLine.show=true;
    }
    // //右值轴的分隔线去掉
    // if (this.option.yAxis&&this.option.yAxis.length == 2) { 
    //   let yAxis2 = JSON.parse(JSON.stringify(this.option.yAxis[1]));
    //   yAxis2.splitLine.show = false;
    //   this.option.yAxis[1] = yAxis2;
    // }
  }
  getAxis(axis){
    let newAxis = {
      type: axis.type,
      axisLabel: {
        color:'rgba(0,0,0,1)',
        fontSize:14
      },
      axisTick:{show:false},
      axisLine: {
        show: axis.type=='value' ? false:true,
        lineStyle:{
          color:'rgba(0,0,0,0.25)'
        }
      },
      splitLine: {
        show: axis.type=='value' ? true:false,
        lineStyle:{
          color:'rgba(0,0,0,0.1)'
        }
      },
      // name: axis.name,
      // nameGap: VHChartStyle.commonChartStyle.axisNameTextStyle.nameGap,
      // nameTextStyle: VHChartStyle.commonChartStyle.axisNameTextStyle,
      data: []
    }
    return newAxis;
  }
  // calcAxisLength(chartData) {
  //   let length = 1;
  //   let leftAxisLength=0, rightAxisLength=0;
  //   for (let measure of chartData.measures){
  //     if (measure.valueAxisType == 'left' || measure.valueAxisType == '') {
  //       leftAxisLength++;
  //     }else{
  //       rightAxisLength++;
  //     }
  //   }
  //   if ((leftAxisLength && !rightAxisLength) || (!leftAxisLength && rightAxisLength)) {
  //     length = 1;
  //   } else if (leftAxisLength && rightAxisLength){
  //     length = 2;
  //   };
  //   return length;
  // }

  //处理双轴
  // processTwoAxises(serie, item, params) {
  //   let chartType = params.chartType;
  //   if (item.valueAxisType == 'right') {
  //     if (ChartModelUtil.isColumnTypeChart(chartType)) { //纵向柱状类型图
  //       serie.yAxisIndex = 1;
  //     }
  //     if (ChartModelUtil.isBarTypeChart(chartType)) { //条形图
  //       serie.xAxisIndex = 1;
  //     }
  //   }
  // }
  // showAllxAxisLabels(option,str,title) {
  //   let obj = str=='scatter' ? option.xAxis : option.xAxis[0];
  //   obj.axisLabel.interval = 0; //强制显示x轴所有标签
  //   // obj.axisLabel.showMinLabel = true;
  //   // obj.axisLabel.showMaxLabel = true;
  //   let data = obj.data?obj.data:[];
  //     for (let d of data) {
  //       if (String(d).length >=4 && data.length>8) { //如果x轴标签有一项满足字数大于等于4且轴标签个数大于8时再旋转
  //         obj.axisLabel.rotate = 30;
  //         if(option.grid.bottom){
  //           option.grid.bottom = 1;
  //         }
  //         // obj = JSON.parse(JSON.stringify(obj));
  //         obj.axisLabel.textStyle.fontWeight = 'normal';
  //         break;
  //       }
  //     }
  // }
}
export default ChartWithAxis;